]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
magnifier: Ignore repeated a11y events
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 6 Feb 2020 09:56:44 +0000 (10:56 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Fri, 7 Feb 2020 17:18:25 +0000 (18:18 +0100)
We may get several a11y events setting the caret on the same
coordinates it previously was. Make focus tracking ignore those,
as we're jumping to the same coordinates again during eg. mouse
operation.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/984

js/ui/magnifier.js

index 4978196409389ce6cee6580b9f51dfab15be45d9..7b43e8dd2c008a8c47d41cb246de789ec005bcb5 100644 (file)
@@ -799,9 +799,13 @@ var ZoomRegion = class ZoomRegion {
             return;
         }
 
-        [this._xFocus, this._yFocus] = [extents.x + (extents.width / 2),
-                                        extents.y + (extents.height / 2)];
-        this._centerFromFocusPosition();
+        let [xFocus, yFocus] = [extents.x + (extents.width / 2),
+                                extents.y + (extents.height / 2)];
+
+        if (this._xFocus !== xFocus || this._yFocus !== yFocus) {
+            [this._xFocus, this._yFocus] = [xFocus, yFocus];
+            this._centerFromFocusPosition();
+        }
     }
 
     _updateCaret(caller, event) {
@@ -816,8 +820,12 @@ var ZoomRegion = class ZoomRegion {
             return;
         }
 
-        [this._xCaret, this._yCaret] = [extents.x, extents.y];
-        this._centerFromCaretPosition();
+        let [xCaret, yCaret] = [extents.x, extents.y];
+
+        if (this._xCaret !== xCaret || this._yCaret !== yCaret) {
+            [this._xCaret, this._yCaret] = [xCaret, yCaret];
+            this._centerFromCaretPosition();
+        }
     }
 
     /**